package com.cbgolf.oa.entity;

import com.amap.api.maps.model.LatLng;
import com.cbgolf.oa.entity.PlayerBean.Player;
import java.io.Serializable;
import java.util.List;

/**
 * @author lq
 * @date 2017/9/5
 */

public class ParkBean implements Serializable {

  public leaveData leaveData;

  public class leaveData implements Serializable {

    public int leaveNum;
    public int groupNum;
    public int partitionNum;
  }

  public leaveData getLeaveData() {
    return new leaveData();
  }

  public RecordData recordData;

  public class RecordData implements Serializable {

    public int recordNum;
    public int tomorrowNum;
  }

  public RecordData getNoRecordData() {
    return new RecordData();
  }

  public carRecordData carRecordData;

  public class carRecordData implements Serializable {

    public int freeNum;
    public int usedNum;
  }

  public carRecordData getCarRecordData() {
    return new carRecordData();
  }

  public caddieRecordData caddieRecordData;

  public class caddieRecordData implements Serializable {

    public int usedNum;
    public int freeNum;
  }

  public caddieRecordData getCaddieRecordData() {
    return new caddieRecordData();
  }

  public List<fairway> fairwayDataList;

  public class fairway implements Serializable {

    public String fairwayCondition;
    public String holeNum;
    public int groupNum;
  }

  public fairway getFairway() {
    return new fairway();
  }

  public String userAccount;
  public String courseName;
//-----------------------------------------------------------------------------

  public String courseId;
  public String id;
  public String createdDate;
  public String lastUpdate;
  public CourseFairwayInfo courseFairwayInfo;

  public class CourseFairwayInfo implements Serializable {

    public List<ParkFair> fairwayInfo;
    public LeftUpPoints leftUpPoints;
    public RightDownPoints rightDownPoints;

    public class LeftUpPoints implements Serializable {

      public String lat;
      public String lng;
    }

    public LeftUpPoints getLeftUpPoints() {
      return new LeftUpPoints();
    }

    public class RightDownPoints implements Serializable {

      public String lat;
      public String lng;
    }

    public RightDownPoints getRightDownPoints() {
      return new RightDownPoints();
    }
  }

  public CourseFairwayInfo getCourseFairwayInfo() {
    return new CourseFairwayInfo();
  }

  //---------------------------------------------------------------------------------------------------

  /**
   * 转换后的球道经纬度数据
   */
  public List<ParkWayInfo> ListParkWayInfoCoverted;

  /**
   * 球僮的信息集合，包括高经纬度
   */
  public List<LatLon> listCaddie;
  /**
   * 打球人信息集合，包括高经纬度
   */
  public List<LatLon> listPlayer;
  /**
   * 工作人员的信息集合，包括高经纬度
   */
  public List<LatLon> listWorder;
  /**
   * 球僮的高德经纬度 集合
   */
  public List<LatLng> listCaddieLatLng;
  /**
   * 打球人的高德经纬度 集合
   */
  public List<LatLng> listPlayerLatLng;
  /**
   * 工作人员的高德经纬度 集合
   */
  public List<LatLng> listWorderLatlng;
  /**
   * 推送过来的，原数据
   */
  public List<LatLon> listLatLonAll;

  public Player player;
  public LatLon personInfo;

  public int inParkPlayerNum;

  public static class Builder implements Serializable {

    ParkBean bean;

    public Builder() {
      bean = new ParkBean();
    }

    public Builder setListCaddieInfo(List<LatLon> listCaddie) {
      bean.listCaddie = listCaddie;
      return this;
    }

    public Builder setInParkPlayerNum(int inParkPlayerNum) {
      bean.inParkPlayerNum = inParkPlayerNum;
      return this;
    }

    public Builder setListWorderInfo(List<LatLon> listWorder) {
      bean.listWorder = listWorder;
      return this;
    }

    public Builder setListPlayerInfo(List<LatLon> list) {
      bean.listPlayer = list;
      return this;
    }

    public Builder setPersonInfo(LatLon info) {
      bean.personInfo = info;
      return this;
    }

    public Builder setListPlayerLatlng(List<LatLng> list) {
      bean.listPlayerLatLng = list;
      return this;
    }

    public Builder setPlayer(Player player) {
      bean.player = player;
      return this;
    }

    public Builder setListWorderLatlng(List<LatLng> listWorder) {
      bean.listWorderLatlng = listWorder;
      return this;
    }

    public Builder setListCaddieLatlng(List<LatLng> list) {
      bean.listCaddieLatLng = list;
      return this;
    }

    public Builder setStatisticsInfo(StatisticsInfo info) {
      bean.statisticsInfo = info;
      return this;
    }

    public ParkBean build() {
      return bean;
    }
  }

  /**
   *
   */
  public StatisticsInfo statisticsInfo;

  public String userId;
  public String userName;
  public String levelName;
  public String phone;
  public String identityType;
  public List<CustomBean> customerInfo;


}
